阿里云CDN默认支持携带一些例如客户端IP地址的请求头,也支持自定义配置。如果您需要改写用户回源请求中的HTTP Header,可以通过配置回源HTTP请求头实现,支持增加、删除、变更或替换回源HTTP请求头,满足更多实际业务需求。
背景信息
HTTP请求头是HTTP的请求消息头的组成部分之一,可携带特定的请求参数信息并传递给服务器。
当CDN节点请求回源站拉取资源时,源站可获取到回源请求头中携带的信息。您可以通过该功能,改写用户回源请求中的HTTP Header信息,携带特定的参数信息给源站,实现特定业务需求。例如,通过X-Forwarded-For头部携带真实客户端IP至源站。
源站服务器通过用户回源请求中携带的X-Forwarded-For头部获取客户端真实IP的方式,请参见获取客户端真实IP。
注意事项
回源请求指用户请求中通过CDN回源的HTTP消息。回源HTTP请求头配置只会影响通过CDN回源的HTTP消息,对于CDN节点直接响应给用户的HTTP消息不做修改。
不支持对泛域名配置回源HTTP请求头。
阿里云CDN默认支持携带以下HTTP请求头回源,您无需额外配置。
回源HTTP Header
说明
示例
Ali-Cdn-Real-Ip
客户端与CDN节点建连时使用的真实IP。
Ali-Cdn-Real-Ip:192.168.0.1
X-Forwarded-For
客户端请求经过CDN节点回源的整个链路上,包括客户端和CDN节点的IP信息。
X-Forwarded-For:192.168.0.1, 172.16.0.1
X-Client-Scheme
客户端发送到CDN节点的应用层请求使用的协议,例如:HTTP、HTTPS。
X-Client-Scheme:http
Host
客户端请求在回源时实际访问的源站Web站点域名。
Host:example.com
Via
客户端请求经过的所有CDN节点的名称。
Via:cn2546-10.l1, cache1.cn2546-10, l2cn2547-7.l2, cache1.l2cn2547-7
回源HTTP请求头的值如果配置的是某个变量,那么实际使用的时候会被设置为具体的变量值,以下为可以使用的变量。
名称
回源HTTP Header
说明
示例
Ali-Cdn-Real-Port
$http_Ali_Cdn_Real_Port
在回源头里面添加客户端真实端口信息,向源站传递客户端端口信息。
Ali-Cdn-Real-Port:80
Ali_Cdn_Real_Ip
$http_Ali_Cdn_Real_Ip
在回源头里面添加客户端真实IP信息,向源站传递客户端IP地址信息。
Ali-Cdn-Real-Ip:192.168.0.1
x_forwarded_for
$proxy_add_x_forwarded_for
在回源头里面添加X-Forwarded-For信息,向源站传递客户端IP和中间的代理服务器IP。
X-Forwarded-For:192.168.0.1, 172.16.0.1
操作步骤
登录CDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,找到目标域名,单击操作列的管理。
在指定域名的左侧导航栏,单击回源配置。
单击回源HTTP请求头页签。
单击添加。
配置回源HTTP请求头信息。
重要当不同的操作方式同时作用于同一个回源请求头参数时,会存在操作冲突。此时按照操作类型的优先级来执行,优先级顺序为替换>增加>变更和删除。例如,当增加和删除操作同时作用于同一个参数时,会先增加再删除。
增加请求头参数
删除请求头参数
变更请求头参数
替换请求头参数
单击确定。